100 REM     T E N N I S 
110 REM  *****************  
120 REM  versione: TI BASIC 
130 REM  COPYRIGHT(C) 1984 
140 REM  di SERGIO BORSANI 
150 CALL CLEAR
160 CALL CHAR(128,"0000183C3C18")
170 CALL CHAR(129,"0000001F1F181818")
180 CALL CHAR(130,"000000FFFF")
190 CALL CHAR(131,"000000F8F8181818")
200 CALL CHAR(132,"1818181818181818")
210 CALL CHAR(133,"1818181F1F")
220 CALL CHAR(134,"181818F8F8")
230 CALL CHAR(135,"1818181F1F181818")
240 CALL CHAR(136,"181818F8F8181818")
250 CALL CHAR(137,"000000FFFF181818")
260 CALL CHAR(138,"181818FFFF")
270 CALL CHAR(124,"1818181818181818")
280 CALL CHAR(139,"383838103F79B939")
290 CALL CHAR(140,"3838282C262321E1")
300 CALL CHAR(141,"1C1C1C08FC9E9D9C")
310 CALL CHAR(142,"1C1C143464C48487")
320 CALL CHAR(143,"0")
330 CALL CHAR(91,"70888484443C0201")
340 CALL CHAR(92,"1818181818181818")
350 CALL CHAR(93,"0E112121223C4080")
360 CALL COLOR(12,2,16)
370 CALL COLOR(13,16,1)
380 CALL COLOR(14,16,1)
390 CALL SCREEN(9)
400 X$="T E N N I S"
410 GOSUB 1750
420 M1$="di Sergio Borsani"
430 RIGA=3
440 COLO=10
450 GOSUB 2020
460 RIGA=5
470 COLO=7
480 X$=M1$
490 GOSUB 2020
500 RIGA=24
510 COLO=2
520 X$="PREMI UN TASTO PER INIZIARE"
530 GOSUB 2020
540 CALL KEY(0,K,S)
550 IF S=0 THEN 540
560 CALL CLEAR
570 PRINT "SONO COLLEGATI I JOYSTICK?"
580 INPUT "(Y/N) ":R$
590 IF R$="Y" THEN 620
600 IF R$="N" THEN 630
610 GOTO 580
620 JY=1
630 CALL CLEAR
640 GOSUB 1750
650 RIGA=14
660 COLO=27
670 GOSUB 2100
680 RIGA=14
690 COLO=5
700 GOSUB 2180
710 X$="  SET  GAME"
720 RIGA=1
730 COLO=2
740 GOSUB 2020
750 X$="GAME  SET"
760 COLO=18
770 GOSUB 2020
780 X$="00   00"
790 RIGA=6
800 COLO=12
810 GOSUB 2020
820 XD=2
830 YD=1
840 XP=7
850 YP=12
860 R10=14
870 R20=14
880 GOSUB 2260
890 GOSUB 2460
900 GOSUB 2260
910 GOSUB 2680
920 GOTO 880
930 CALL SOUND(100,120,2)
940 IF XP>10 THEN 1230
950 SC2=SC2+1
960 RIGA=6
970 COLO=17
980 IF SC2>3 THEN 1030
990 PUNTI=SC2
1000 GOSUB 2900
1010 GOSUB 2020
1020 GOTO 1500
1030 SC1=0
1040 SC2=0
1050 GOSUB 2070
1060 RIGA=3
1070 COLO=20
1080 GAME2=GAME2+1
1090 GG=1
1100 IF GAME2>6 THEN 1140
1110 X$=STR$(GAME2)
1120 GOSUB 2020
1130 GOTO 1500
1140 GAME2=0
1150 SET2=SET2+1
1160 X$="0"
1170 GOSUB 2020
1180 COLO=25
1190 X$=STR$(SET2)
1200 GOSUB 2020
1210 IF SET2=3 THEN 1590
1220 GOTO 1500
1230 SC1=SC1+1
1240 RIGA=6
1250 COLO=12
1260 IF SC1>3 THEN 1310
1270 PUNTI=SC1
1280 GOSUB 2900
1290 GOSUB 2020
1300 GOTO 1500
1310 SC1=0
1320 SC2=0
1330 GOSUB 2070
1340 RIGA=3
1350 COLO=11
1360 GAME1=GAME1+1
1370 GG=2
1380 IF GAME1>6 THEN 1420
1390 X$=STR$(GAME1)
1400 GOSUB 2020
1410 GOTO 1500
1420 GAME1=0
1430 SET1=SET1+1
1440 X$="0"
1450 GOSUB 2020
1460 COLO=5
1470 X$=STR$(SET1)
1480 GOSUB 2020
1490 IF SET1=3 THEN 1590
1500 IF GG=1 THEN 1550
1510 XP=25
1520 YP=12
1530 XD=-2
1540 GOTO 2440
1550 XP=7
1560 YP=16
1570 XD=2
1580 GOTO 2440
1590 CALL HCHAR(7,10,32,12)
1600 X$="VINCE"
1610 RIGA=7
1620 IF SET1=3 THEN 1650
1630 COLO=18
1640 GOTO 1660
1650 COLO=7
1660 GOSUB 2020
1670 X$="PREMI UN TASTO"
1680 RIGA=24
1690 COLO=9
1700 GOSUB 2020
1710 CALL KEY(0,K,S)
1720 IF S=0 THEN 1710
1730 CALL CLEAR
1740 END
1750 CALL HCHAR(9,7,130,19)
1760 CALL HCHAR(10,7,130,19)
1770 CALL HCHAR(20,7,130,19)
1780 CALL HCHAR(21,7,130,19)
1790 CALL HCHAR(9,6,129)
1800 CALL HCHAR(10,6,135)
1810 CALL VCHAR(11,6,132,9)
1820 CALL HCHAR(20,6,135)
1830 CALL HCHAR(21,6,133)
1840 CALL HCHAR(9,26,131)
1850 CALL HCHAR(10,26,136)
1860 CALL VCHAR(11,26,132,9)
1870 CALL HCHAR(20,26,136)
1880 CALL HCHAR(21,26,134)
1890 CALL HCHAR(10,11,137)
1900 CALL VCHAR(11,11,132,9)
1910 CALL HCHAR(20,11,138)
1920 CALL HCHAR(10,21,137)
1930 CALL VCHAR(11,21,132,9)
1940 CALL HCHAR(20,21,138)
1950 CALL HCHAR(15,11,135)
1960 CALL HCHAR(15,12,130,9)
1970 CALL HCHAR(15,21,136)
1980 CALL HCHAR(8,16,92)
1990 CALL VCHAR(9,16,124,13)
2000 CALL HCHAR(22,16,92)
2010 RETURN
2020 FOR L=1 TO LEN(X$)
2030 A=ASC(SEG$(X$,L,1))
2040 CALL HCHAR(RIGA,COLO+L,A)
2050 NEXT L
2060 RETURN
2070 CALL HCHAR(6,13,48,2)
2080 CALL HCHAR(6,18,48,2)
2090 RETURN
2100 CALL HCHAR(RIGA,27,91)
2110 CALL HCHAR(RIGA,28,139)
2120 CALL HCHAR(RIGA+1,27,143)
2130 CALL HCHAR(RIGA+1,28,140)
2140 RETURN
2150 CALL HCHAR(RIGA,27,32,2)
2160 CALL HCHAR(RIGA+1,27,32,2)
2170 RETURN
2180 CALL HCHAR(RIGA,5,93)
2190 CALL HCHAR(RIGA,4,141)
2200 CALL HCHAR(RIGA+1,4,142)
2210 CALL HCHAR(RIGA+1,5,143)
2220 RETURN
2230 CALL HCHAR(RIGA,4,32,2)
2240 CALL HCHAR(RIGA+1,4,32,2)
2250 RETURN
2260 CALL HCHAR(YP,XP,CH)
2270 XP=XP+XD
2280 YP=YP+YD
2290 IF(YP>18)+(YP<12)THEN 2300 ELSE 2320
2300 YD=-YD
2310 CALL SOUND(100,200,2)
2320 CALL GCHAR(YP,XP,CH)
2330 IF(CH<>91)*(CH<>93)*(CH<139)THEN 2410
2340 CALL SOUND(100,300,2)
2350 XD=-XD
2360 CALL HCHAR(YP,XP,CH)
2370 CH=32
2380 YP=YP+YD
2390 XP=XP+XD
2400 GOTO 2450
2410 IF(XP<3)+(XP>30)THEN 930
2420 CALL GCHAR(YP,XP,CH)
2430 IF CH<>32 THEN 2450
2440 CALL HCHAR(YP,XP,128)
2450 RETURN
2460 IF JY=1 THEN 2530
2470 CALL KEY(0,K,S)
2480 IF K<>81 THEN 2500
2490 R1=R1-2
2500 IF K<>65 THEN 2580
2510 R1=R1+2
2520 GOTO 2580
2530 CALL JOYST(1,X,Y)
2540 IF Y<>4 THEN 2560
2550 R1=R1-2
2560 IF Y<>-4 THEN 2580
2570 R1=R1+2
2580 IF R1=R10 THEN 2670
2590 IF(R1>8)*(R1<22)THEN 2620
2600 R1=R10
2610 GOTO 2670
2620 RIGA=R10
2630 GOSUB 2230
2640 RIGA=R1
2650 GOSUB 2180
2660 R10=R1
2670 RETURN
2680 IF JY=1 THEN 2750
2690 CALL KEY(0,K,S)
2700 IF K<>79 THEN 2720
2710 R2=R2-2
2720 IF K<>76 THEN 2800
2730 R2=R2+2
2740 GOTO 2800
2750 CALL JOYST(2,X,Y)
2760 IF Y<>4 THEN 2780
2770 R2=R2-2
2780 IF Y<>-4 THEN 2800
2790 R2=R2+2
2800 IF R2=R20 THEN 2890
2810 IF(R2>8)*(R2<22)THEN 2840
2820 R2=R20
2830 GOTO 2890
2840 RIGA=R20
2850 GOSUB 2150
2860 RIGA=R2
2870 GOSUB 2100
2880 R20=R2
2890 RETURN
2900 IF PUNTI<>1 THEN 2930
2910 X$="15"
2920 GOTO 2970
2930 IF PUNTI<>2 THEN 2960
2940 X$="30"
2950 GOTO 2970
2960 X$="40"
2970 RETURN
